#include "list.h"
int fdserver;
void handler(int sign)
{
    switch (sign)
    {
        case SIGINT:
            close(fdserver);  
            printf("\nserver already exit!\n");
            break;
    
        default:
            break;
    }
    exit(1);
}

int main(void)
{
    int len;
    char buff[1024]={0};
    LIST *usrinfo=creatlist();//用于接收用户的信息
    usrinfo->next=NULL;
    LIST *loginlist=creatlist(); //用于存储登录列表
    loginlist->next=NULL;
    if((fdserver=open(PUBLICFIFO, O_RDONLY|O_NONBLOCK)) < 0)  //以不阻塞方式打开服务器共享管道
    {
        perror("open fdserver");   
        exit(1);
    }

    signal(SIGINT,handler);  //采用信号处理“CTRL+C”

    while(1) 
    {
        if((len=read(fdserver,usrinfo,sizeof(LIST))) < 0)   //读取用户发给服务器的数据
        {
            if(errno!=EAGAIN)
                perror("read fdserver");
        }   
        else 
            resolve(usrinfo->id,usrinfo,loginlist); //解析这个数据包，根据协议号工作
        sleep(1);
    }
    return 0;
}
